关于fread和fwrite写入和读出不一致的问题

您所在的位置:网站首页 camera raw 写入文件时出错 关于fread和fwrite写入和读出不一致的问题

关于fread和fwrite写入和读出不一致的问题

2024-06-08 12:46| 来源: 网络整理| 查看: 265

今天在把大规模数据写入文件时,发生了一件怪事,我明明已经把数据压缩到数值为0到1600之间了,但是读出的时候发现数据范围却在负三万到正三万之间,我试了很久很久,一开始我总认为是CPU优化的问题,难道忽略了一些数值?

写入的程序:

FILE *fp = fopen("./sample.raw","w"); for (int i = 0; i < 236; i++) { for (int j = 0; j < 512 * 512; j++) { if (bbes[i][j] >= 1500) bbes[i][j] = (short)1500; if (bbes[i][j] < 0) bbes[i][j] = (short)0; } } //把所有图片都加载进来 for (int i = 0; i < 236; i++) { fwrite(bbes[i], sizeof(short), 512*512, fp); } fclose(fp);

读入的程序:

FILE *fp = fopen("C:\\Developer\\C++item\\DICOM_Analyse\\DICOM_Analyse\\sample.raw", "r"); myBbes = (short **)malloc(sizeof(short *) * 236); for (int i = 0;i < 236;i++) { short * ase = new short[512*512]; myBbes[i] = ase; } for (int i = 0; i < 236; i++) { int len = fread(myBbes[i], sizeof(short), width*height, fp); cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3